Systems and methods for aircraft flight tracking and data collection

ABSTRACT

Systems and methods are provided for automated collection and analysis of aircraft flight data. In accordance with one aspect, a system for collecting flight data associated with an aircraft is provided to transmit collected flight data to a remote system for storage and processing. In accordance with another aspect, a remote system utilizes received aircraft location data to determine whether an aircraft flight incident has occurred, and to alert appropriate emergency services. In accordance with another aspect, a remote system analyzes received aircraft flight data and quantitatively evaluates performance of a pilot. In yet another aspect, a system is provided for graphical and textual display of collected aircraft flight data and pilot performance evaluation data.

RELATED APPLICATION

This application claims the benefit of priority under 35 U.S.C. §119(e)of U.S. Provisional Application No. 61/282,805, filed Apr. 2, 2010, thedisclosure of which is incorporated herein by reference.

TECHNICAL FIELD

The present disclosure related to systems and methods for trackingflights, and more particularly, to systems and methods for trackingflights, including in real-time, for analyzing the performance of thepilots of these flights, and/or for making suggestions for correctingthe human errors made during these flights. The present disclosure alsorelates to systems and methods for locating airplanes that may haveundergone a flight incident.

BACKGROUND

Most pilots, from novice student pilots to seasoned airline captains,seek ways of improving their flying skills and ways to avoid repeatingerrors in piloting, which they or other pilots have made. Such errorsinclude errors in handling the airplane, such as flying too fast or tooslow. They also include errors in executing certain flight procedures,for example, turning too soon or too late, misusing navigational aidsand thus not flying along assigned routes, and flying higher or lowerthan instructed. Every pilot makes mistakes from time to time, and inmost cases the mistakes are benign. However, in some instances piloterrors can compromise the safety of the flight. If the pilot is notaware of the mistakes made, he may repeat them, and in some cases theresults could be dire.

A 2001 study by the Federal Aviation Administration, entitled “A HumanError Analysis of Commercial Aviation Accidents Using the Human FactorsAnalysis and Classification System (HFACS),” demonstrated that mostairplane accidents are the result of human errors. The percentage ishigher in General Aviation (GA), likely because GA pilots on averagereceive less training than pilots of commercial flights, and alsobecause GA planes, on average, are less equipped than planes used incommercial flights.

With current technology, pilots might be unaware of some of theirerrors, and thus might repeat them. Aircraft used in commercialaviation, especially those used in scheduled flights, often have systemsfor informing the pilots about certain human errors, and in some cases,even correcting the errors automatically. But even in aircraft withsophisticated avionics systems, many human errors go unnoticed and mayresult in an accident. The situation in GA may be worse. Thus, atechnology for helping pilots to be aware of and understand theirmistakes might increase the pace of pilots' self improvement andincrease flight safety. Particularily for GA aviation, such a technologyshould be affordable.

Embodiments consistent with the present disclosure may mitigate or solvethe problems identified above. Embodiments consistent with the presentdisclosure may provide tools for logging flight data, for collectingadditional data relevant for flight analysis, for automaticallyanalyzing data using mathematical, statistical and heuristical methodsof that data after the flight has ended, and for presenting thatanalysis using graphical and textual visualization aids. Embodimentsconsistent with the present disclosure may be utilized interoperatively,as a comprehensive flight data collection and analysis system.

SUMMARY

One aspect relates to a system for collecting flight data associatedwith an aircraft. The system may comprise a data logger comprising amemory unit for storing flight data. The data logger may furthercomprise a processing unit coupled to the memory unit and configured tosupply the memory unit with flight data, wherein the processing unit isfurther configured to reorder and prioritize stored flight data prior totransmission. The data logger may further comprise a transmitting andreceiving unit coupled to the processing unit and adapted to transmitstored flight data to a remote system and receive data from a remotesystem and a global positioning system receiver having an output coupledto provide global positioning data to the processing unit.

Another aspect relates to a system for recording aircraft flight data.The system may comprise means for collecting flight data. Means forcollecting flight data may further comprise means for storing flightdata, means for transmitting stored flight data to remote means forstoring and processing flight data and receiving data from the remotemeans, and means for processing stored flight data, wherein the storedflight data is reordered and prioritized by the processing means priorto transmission. Means for collecting flight data may further comprisemeans for receiving global positioning system data.

Still another aspect relates to a method of collecting flight data. Themethod may comprise collecting aircraft flight data via a data logger,collecting global positioning system data via a global positioningreceiver, prioritizing the flight data for transmission, andtransmitting the flight data to a remote system. The remote system maycomprise a remote system memory, a remote system processor, and a remotesystem transmitter and receiver.

Still another aspect relates to a non-transitory computer readablemedium encoded with a computer program for collecting flight dataassociated with an aircraft. The computer program may compriseinstructions for collecting flight data during an aircraft flight,storing the flight data in a computer readable memory, collecting globalpositioning data from a global positioning receiver, prioritizing theflight data for transmission, transmitting the flight data to a remotesystem, and receiving stored data from a remote system.

Still another aspect relates to an aircraft locator system. The aircraftlocator system may comprise a data logger configured to obtain aircraftlocation data and transmit the aircraft location data in a prioritizedorder. The aircraft locator system may further comprise a server havinga server memory unit, a server processing unit coupled to the memoryunit, and a server transmitting and receiving unit coupled to theprocessing unit. The server may be configured to receive the transmittedaircraft location data, determine, based on the received aircraftlocation data, whether a flight incident has occurred and determine,based on the received aircraft location data, a last known location ofthe aircraft.

Still another aspect relates to an aircraft locator system. The aircraftlocator system may comprise means for collecting aircraft location data.Means for collecting aircraft location data may comprise means forreceiving global positioning system aircraft location data, means forstoring aircraft location data, means for transmitting stored aircraftlocation data to a remote means for storing and processing aircraftlocation data, and means for processing stored aircraft location data,wherein the stored aircraft location data is reordered and prioritizedby the processing means prior to transmission. The remote means forstoring and processing aircraft location data may receive thetransmitted aircraft location data and determine, based on the receivedaircraft location data, whether a flight incident has occurred.

Still another aspect relates to an aircraft locator method. The aircraftlocator method may comprise collecting aircraft location data via a datalogger, prioritizing the aircraft location data for transmission via thedata logger, transmitting the aircraft location data to a remote system,determining whether a flight incident has occurred via the remotesystem, and determining, based on the aircraft location data, a lastknown location of the aircraft.

Still another aspect relates to a non-transitory computer readablemedium encoded with a computer program for locating an aircraft. Thecomputer program may comprise instructions for receiving prioritizedaircraft location data, determining, based on the received aircraftlocation data, whether a flight incident has occurred, and determining,based on the received aircraft location data, a last known location ofthe aircraft.

Still another aspect relates to an aircraft flight analysis and gradingsystem. The system may comprise a server comprising a server memoryunit, a server processing unit coupled to the server memory unit, and aserver transmitting and receiving unit coupled to the processing unit.The system may further comprise a data logger configured to obtainflight data during a flight of an aircraft or simulated flight of anaircraft and transmit the flight data in a prioritized order. The servertransmitting and receiving unit may be configured to receive thetransmitted flight data. The server processing unit may be furtherconfigured to correct measurement errors in the received flight data,segment the received flight data into flight segments, recognizelocations of airports and runways in the flight data used by theaircraft or simulated flight for takeoff and landing, and provideevaluation information about pilot performance in at least one of theflight segments.

Still another aspect relates to an aircraft flight analysis and gradingsystem. The aircraft flight analysis and grading system may comprisemeans for collecting flight data during a flight of an aircraft orsimulated flight, means for transmitting flight data, means forreceiving the transmitted flight data, means for storing the receivedflight data, and means for processing the stored flight data. The meansfor transmitting may transmit flight data in a prioritized order. Themeans for processing may correct measurement errors in the receivedflight data, segment the received flight data into flight segments,recognize locations of airports and runways in the flight data used bythe aircraft or simulated flight for takeoff and landing, and provideevaluation information about pilot performance in each flight segment.

Still another aspect relates to an aircraft flight analysis and gradingmethod. The method may comprise obtaining aircraft flight data collectedduring a flight of an aircraft or a simulated flight via a data logger,transmitting the flight data in a prioritized order via the data logger,correcting measurement errors in the received flight data via a serverprocessing unit, segmenting the flight data into flight segments via theserver processing unit, recognizing locations of airports and runways inthe flight data used by the aircraft or simulated flight for takeoff andlanding via the server processing unit, and providing evaluationinformation about pilot performance for at least one of the flightsegments via the server processing unit.

Still another aspect relates to a non-transitory computer readablemedium encoded with a computer program for implementing an aircraftflight analysis and grading method. The computer program may compriseinstructions for receiving aircraft flight data transmitted from a datalogger collecting data about a flight of an aircraft or simulatedflight, correcting measurement errors in the received aircraft flightdata, segmenting the received aircraft flight data into flight segments,recognizing locations of airports and runways in the aircraft flightdata used by the aircraft or simulated flight for takeoff and landing,and providing evaluation information about pilot performance for atleast one of the flight segments.

Still another aspect relates to a flight display system. The flightdisplay system may comprise a server comprising a server memory unit anda server processing unit coupled to the server memory unit, wherein theserver memory unit is configured to store flight data and flightevaluation data associated with a flight. The flight display system mayfurther comprise a remote workstation comprising a remote workstationprocessing unit, a remote workstation memory unit, and a remoteworkstation visual display unit, wherein the remote workstation isconfigured to display flight data or flight evaluation data receivedfrom the server in graphical or textual format.

Still another aspect relates to a flight display system. A flightdisplay system may comprise means for storing flight data and flightevaluation data associated with a selected flight in a flight database,means for securely accessing the flight database based on usercredentials, means for obtaining flight data and flight evaluation datafrom the flight database, means for processing obtained flight data andevaluation data, and means for displaying at least one of the obtainedflight data and flight evaluation data in graphical or text format.

Still another aspect relates to a flight display method performed by acomputer. The method may comprise establishing a secure connection witha remote database based on user credentials, retrieving flight data andflight evaluation data from the remote database, and displaying at leastone of the flight data and the flight evaluation data in graphical ortext form.

Still another aspect relates to a non-transitory computer readablemedium encoded with a computer program for implementing a flight displaymethod. The computer program may comprise instructions for establishinga secure connection with a remote database based on user credentials,retrieving flight data and flight evaluation data from the remotedatabase, and displaying at least one of the flight data and theevaluation data in graphical or text form.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 illustrates exemplary informational flow within an exemplaryembodiment of a system for flight data collection and analysis.

FIG. 2 illustrates exemplary interaction between multiple exemplarycomponents of an exemplary flight data collection and analysis system.

FIG. 3 illustrates two diagrams of exemplary modes of communicationbetween an airborne data logger and a ground based server: a real-timetransmission mode and a delayed transmission mode.

FIG. 4 is a flowchart showing an exemplary implementation of a methodfor determining whether the logging of data in the airborne data loggershould be stopped automatically.

FIG. 5 illustrates various exemplary types of data that may be stored ona ground-based server as Time Stamped Flight Data (TSFD).

FIG. 6 is a flowchart of an exemplary prioritized LIFO(Last-In-First-Out) method, which may be implemented on an exemplaryairborne data logger.

FIG. 7 illustrates exemplary relationships between exemplary componentsof a flight analyzer.

FIG. 8 is a flowchart of an exemplary automatic flight segmentrecognizer method.

FIGS. 9 a and 9 b illustrate results of an exemplary automaticsegmentation of a flight, which may be performed by an exemplaryautomatic flight segment recognizer, and may be presented by a webclient in both graphical and in text format.

FIGS. 10 a and 10 b illustrate an exemplary implementation of thegraphical display of an exemplary required flight path vs. an actualflight flown by a pilot.

FIGS. 11 a and 11 b illustrate an exemplary implementation of a displayof flight parameters at a given point and an exemplary animation mode,respectively.

FIG. 12 illustrates an exemplary implementation of a display of graphsshowing the change of selected flight parameters in time.

FIG. 13 illustrates an exemplary implementation of a display of windvectors on a 3D flight track.

FIG. 14 illustrates an exemplary implementation of an exemplary editorfor a published flight procedure.

OVERVIEW

According to some embodiments of the systems and methods disclosedherein, a comprehensive flight data collection and analysis system maybe provided. For example, FIG. 1 illustrates an exemplary embodiment ofa system 100, including exemplary informational inputs and outputs. Asshown in FIG. 1, aircraft flight information 102 may be collected andcombined with auxiliary information 103 pertaining to aircraft flights,which may include but is not limited to terrain data, weatherinformation, aircraft capability database, airport and navigationalinstruments' locations, and published flight procedures. According tosome embodiments, simulated flight information 101 from a flightsimulator may be collected. According to some embodiments, any or all ofaircraft flight information 102, auxiliary information 103, and flightsimulator information 101 may be transferred into, stored at, andprocessed by the system 100. According to some embodiments, the system100 may process such information and may enable pilots and other peopleto obtain and view post-flight analysis information 104. According tosome embodiments, the system 100 may provide abnormal flight terminationinformation 105. The system 100 may present such data and its analysisin various formats, such as formats applicable for people interested inanalyzing flights and information applicable for emergency servicespersonnel in charge of locating an aircraft that may have undergone anabnormal flight incident.

Embodiments consistent with this disclosure may be used for providingfeedback to pilots about their flights in an actual aircraft or in aflight simulator. Such feedback may help the pilots self-improve. Thefeedback about a pilot's performance may also be used by people otherthan the pilot, including but not limited to, flight instructors, flightsafety experts, air traffic controllers, and instrument procedures'planners. In addition, some embodiments consistent with this disclosuremay be used for an automatic alerting of emergency personnel of apossible aircraft flight incident, such as an accident, collision,crash, overdue arrival, altitude deviation, course deviation, groundproximity warning, loss of transponder information or loss of automaticdependent surveillance-broadcast (ADS-B) information, etc.

FIG. 2 shows an exemplary overview of the interoperation betweenexemplary components of an exemplary system 100. System 100 may includemeans for collecting, storing, transmitting, and receiving flight data,for example, airborne data logger 202 or flight simulator 205. System100 may include remote means for storing, processing, transmitting, andreceiving flight data, for example, ground-based server 203. System 100may include means for storing flight evaluation data, for example,ground-based server 203. System 100 may include means for securelyaccessing, obtaining, processing, and displaying flight data and flightevaluation data, for example, web client 206. For example, exemplaryairborne data logger 202 may be utilized in an aircraft 201 duringflight. Airborne data logger 202 may obtain and store timed locationdata and other flight parameter data, and transmit them to aground-based server 203.

Exemplary ground-based server 203 may store flight parameters obtainedfrom at least one airborne data logger 202 and auxiliary data 204obtained from sources other than airborne data logger 202 and related toat least one flight whose parameters are logged by the airborne datalogger 202. Ground-based server 203 may automatically analyze both thedata from airborne data logger 202 and auxiliary data 204. According tosome embodiments, ground-based server 203 may communicate with at leastone web client 206.

Ground-based server 203 may also process data from one or more flightsimulators 205 in the same manner as it processes data obtained from anairborne data logger 202. For example, flight simulator data link 208may transmit simulated flight information to ground-based server 203.Flight simulator data may be obtained when people use a flight simulatorfor training, and may be used by ground-based server 203 much like dataobtained by an airborne data logger. According to some embodiments,flight simulator 205 data, data from airborne data logger 202, auxiliarydata 204, as well as the analysis of these data, may be viewed by auser, using a web browser, which may be part of web client 206. Webclient 206 may communicate with at least one ground-based server 203.According to some embodiments, web client 206 may display data andanalysis related to at least one flight, according to a user's requestand authorization.

According to some embodiments, ground-based server 203 may alsocommunicate with one or more emergency services 207, such as a firedepartment or emergency search and rescue team. Ground-based server 203may alert personnel or computerized emergency systems to abnormalconditions related to a suspected flight incident, such as an accident,collision, crash, overdue arrival, altitude deviation, course deviation,ground proximity warning, loss of transponder information or loss ofADS-B information, etc.

Flight Data Collection

According to some embodiments, airborne data logger 202 may be carriedaboard an aircraft 201 as shown in FIG. 2. Airborne data logger 202 maycollect flight data from aircraft 201 and may also generate flight datainternally. Airborne data logger 202 may relay collected flight data toground-based server 203, in real-time or after a delay to theground-based server. If the communication link is temporarilyunavailable, the airborne data logger 202 may store collected flightdata locally and broadcast it when communication is available again.

Exemplary ground-based server 203 may aggregate flight data from atleast one source of flight data, including data obtained from anairborne data logger 202, data obtained from a flight simulator 205, andauxiliary data 204 obtained from additional data sources, which pertainto at least some collected flight data obtained by at least one airbornedata logger 202. Ground-based server 202 may store collected data forlater retrieval, and may automatically analyze collected data.Ground-based server 202 may analyze collected data fully automatically,for example, without additional user information. Ground-based server202 may also analyze collected data with the assistance of additionaluser information, for example, in order to correlate collected flightdata with information pertaining to pilot intentions.

According to some embodiments, airborne data logger 202 may beimplemented as a computerized device that collects location informationand other flight-related data, stores it, and relays it to ground-basedserver 203. Airborne data logger 202 may also be implemented as asoftware application on a portable smartphone, such as an iPhone, whichis carried onboard an aircraft during flight. Airborne data logger 202may also be implemented on a similar device, which may be eitherportable or embedded in an aircraft 201. Airborne data logger 202provides a bi-directional data-link to ground-based server 203. Thebi-directional data-link may be implemented using wireless datacommunication including, but not limited to, a cellular data link, aradio data link such as Aircraft Communications Addressing and ReportingSystem (ACARS), and a satellite data link, or may be implemented usingwired communication when the aircraft 201 is on the ground. Airbornedata logger 202 may aggregate data, which may be sent encrypted andcompressed to the ground-based server 203.

According to some embodiments, data sent from airborne data logger 202to ground-based server 203 may include real-time Global PositioningSystem (GPS) information 264, including latitude, longitude, andaltitude. GPS information may be acquired via means for receiving globalpositioning system data, for example, a GPS unit integral to airbornedata logger 202, or an external GPS unit connected to airborne datalogger 202 via connections such as USB or Bluetooth. The frequency ofGPS location sampling may be greater than 1 Hertz.

According to some embodiments, data sent from airborne data logger 202to ground-based server 203 may also include Wide Area AugmentationSystem (WAAS) enhanced GPS information. The WAAS is a navigation aidsystem designed to augment GPS to improve the precision and accuracy ofGPS data.

According to some embodiments, data sent to from airborne data logger202 to ground-based server 203 may also include pilot-providedinformation 261, such as pilot and co-pilot names, and aircraft serialnumber (“tail number”). For example, pilot-provided information 261 maybe sent to ground based server 203 once only, typically before a flight.

According to some embodiments, data sent from airborne data logger 202to ground-based server 203 may also include audio information 263,including at least one of cockpit intercom audio, radio communication,and ambient cockpit sound. For example, airborne data logger 202 mayreceive audio information via an attenuating cable connected to thepilot's headset jack. Airborne data logger 202 may digitize the audioinformation, store it locally on a data store in the device, and send itto ground-based server 203, optionally in real-time.

According to some embodiments, data sent from airborne data logger 202to ground-based server 203 may also include avionics data 262 from theaircraft's digital avionics systems, which may be transmitted toairborne data logger 202 via USB cable or via other means. For example,digital avionics data 262 may include at least one of airspeed,altitude, bank and pitch angles, engine RPM, various enginetemperatures, and manifold pressure. Digital avionics data 262 mayinclude a flight plan entered into the avionics system by the pilot. Insome cases, data from the aircraft's digital avionics system may alsoinclude GPS data.

FIG. 3 illustrates an exemplary real-time transmission mode 301 and anexemplary delayed transmission mode 302 of airborne data logger 202. Forexample, airborne data logger 202 may operate in a real-timetransmission mode 301, set by the pilot, which broadcasts data inreal-time, soon after the data is acquired by airborne data logger 202.Alternatively, the pilot may select a delayed transmission mode 302,wherein flight data is collected, but data transmission is delayed sothat data transmission does not occur in real-time, and therefore avoidsbroadcasting, during certain phases of the flight.

In both diagrams of FIG. 3. the horizontal axis corresponds to a timeline in which an aircraft starts taxiing, then takes-off, flies, lands,and taxis to its parking space. Each of the thick lines represents theduration of one data transmission. In real-time transmission mode 301,flight data 303 is sent frequently. In such a mode, flight data 303 iscollected in memory and then sent in a packet. The size of each packetand the interval between packets may depend on several factors, such asthe amount of flight data 303 accumulated since the last packet and thedesired frequency of packets per minute.

In delayed transmission mode 302, flight data 304 may be accumulated andstored in the airborne data logger 202, but only transmitted if certainconditions occur. For example, one such condition might be the airspeedof the aircraft. In the example shown in FIG. 3, the accumulated flightdata 304 is transmitted only if the aircraft's airspeed is lower than 15knots (i.e., if the aircraft is not airborne). As illustrated, theduration of the first data transmission after the aircraft has landed islong, because this transmission includes relatively large amount offlight data 304 that accumulated while the aircraft was airborne.

According to some embodiments, in delayed transmission mode 302, flightdata 304 transmission is enabled only if the aircraft is flying nearstall airspeed. The possible benefit of this mode is that location datawould be transmitted prior to the aircraft's landing, and thus, if theaircraft had a flight incident the transmission just prior to the flightincident could help in locating the aircraft.

FIG. 4 is a flow-chart of an exemplary embodiment of an auto-stop modeof airborne data logger 202. When an auto-stop mode is selected by thepilot (step 401), airborne data logger 202 begins working in a modewhere it waits until aircraft 201 is airborne (step 402) to begincollecting data (step 403). After data collection has begun, airbornedata logger 202 repeatedly reassess the flight status of aircraft 201(step 404). When aircraft 201 is no longer airborne and has come to acomplete stop (step 405) for a specified number of minutes, exemplaryairborne data logger 202 automatically stops collecting data (step 406).

Referring again to FIG. 2, ground-based server 203 may be implemented insoftware on Linux, Unix, Microsoft Windows, Apple Macintosh, or otheroperating systems. Ground-based server 203 may comprise a web server,such as Apache, operating with several proprietary Common GatewayInterface (CGI) programs, which may be implemented in C++, Perl, Python,Java, or other programming languages. Ground-based server 203 softwaremay further comprise components that are not directly connected to a webserver. Collectively, components of ground-based server 203 may processflight data transmitted from airborne data logger 202 or from a flightsimulator 205 via communication links such as TCP/IP, and store it in adatabase such as an SQL database. Other components of ground-basedserver 203 software may manipulate flight data, analyze flight data,convert flight data to various formats, and send the processed flightdata via HTTP/S or other communication protocols to at least one webclient 206 or emergency service 207. According to some embodiments,software of ground-based server 203 may handle all of the interactionbetween ground-based server 203 and web clients 206, including a user'ssign-in to an account, flight selection, and flight analysis.Ground-based server 203 may also include programs for managing accountsand any databases used by server 203.

FIG. 5 illustrates exemplary Time-Stamped Flight Data (TSFD) 506, asmaintained by ground based server 203. According to some embodiments,data arriving from airborne data logger 202 may include the time atwhich the data was recorded. For example, an audio conversation in thecockpit may be sent digitally together with the time at which it tookplace. While data from the airborne data logger may be transmitted toground-based server 203 in any order, not necessarily in chronologicalorder, it may be desirable for ground-based server 203 to access theflight data sorted by time. To carry out its analysis functions,ground-based server 203 may maintain TSFD 506. TSFD 506 comprisesper-flight collection of data from different sources, sorted by time.

FIG. 5 illustrates timed data that may be included in the TSFD 506.These data may come from airborne data logger 202 and from othersources. TSFD 506 may include at least one of the following items: GPS3D location 264 (e.g., latitude, longitude, altitude, optionallyenhanced by WAAS); avionics data 263 (e.g., data from the aircraft'son-board avionics systems, such as airspeed, pitch and bank angles,engine RPM and manifold pressure, and piston and oil temperatures);cockpit and air traffic control (ATC) audio 262 (e.g., cockpitconversations, ambient cockpit audio, as well as external radiocommunications); pilot-provided information 261 (e.g., pilots'names andthe aircraft's tail number); weather 507 (information from variousexternal sources about the weather along the flight path, includingwind, temperature, barometric pressure, cloud types and bases, andicing); photos and videos 508 taken at various times during the flight;flight plan 509 provided by the pilot and including the actual flightstages (e.g., departure procedures, routes, arrival procedure, andapproach); text annotations 510 provided by a web client user andattached to certain time/location points. According to some embodiments,in cases where the engine's RPM is not available from the digitalavionics data, engine RPM may be determined by airborne data logger 202based on ambient cockpit audio data, for example, by performing spectralanalysis on digitized ambient cockpit audio.

Emergency Locator

Referring again to FIG. 2, ground-based server 203 may send data (e.g.,automatically) to an emergency locator service 207 for use in aiding ina search for an aircraft that may have undergone a flight incident andfor analyzing the reasons for the flight incident. Emergency locatorservice 207 may be implemented in the exemplary manner described below.

Following a normal flight in which the pilot flies aircraft 201 andoperates airborne data logger 202, aircraft 201 may experience a flightincident. During the flight, airborne data logger 202 may continuouslyor intermittently broadcast location information to ground-based server203. Airborne data logger 202 may continue to broadcast locationinformation after a flight incident. Even in the event that airbornedata logger 202 does not survive a flight incident, location informationwill have already been sent while aircraft 201 was still airborne,immediately prior to the flight incident.

Ground-based server 203 may monitor the location of an aircraft 201during flight and detect a possible flight incident scenario based onlocation information. A flight incident detection strategy running onground-based server 203 and monitoring the flight may trigger a flightincident alert when it detects a potential flight incident, signified,for instance, by data indicating that the aircraft is stationary on theground at a point that is not an airport, or by communication being lostafter a descent. Ground-based server 203 may automatically send messagesvia HTTP to designated emergency services 207.

FIG. 6 is a flow-chart of an exemplary prioritized last-in first-out(LIFO) data transmission method of an exemplary emergency locatorembodiment. According to some embodiments, airborne data logger 202 mayprioritize data transmissions to the ground-based server 203, in aprioritized LIFO fashion. All of the flight data collected by theairborne data logger 202, which may include location and audio, may bestored in a persistent database on the airborne data logger 202,together with the time of data collection. A communication softwarethread operating concurrently with the other airborne data logger 202operations may periodically check the database for the existence ofcollected data to transmit to the ground-based server 203. When suchdata is found, it may be sent in a prioritized LIFO order. Pilot-enteredinformation may be sent first (step 602). This may occur once only perflight, typically while the plane is still on the ground. If newlocation information is found in the database (step 603), it may betransmitted to ground-based server 203, so that the most recentinformation is sent first (step 604). Sent data may be removed from theairborne data logger 202 database to free up storage space. If there isno new location information in the database, the airborne data logger202 checks for recorded audio information (step 605). If new audioinformation is present, it may be transmitted to ground-based server 203in LIFO order (step 506). Audio data that has been sent may be deletedfrom the airborne data logger 202 database. If there is no new locationor audio information in the database, the airborne data logger 202checks for additional information (such as data from the avionicssystem) (step 607), which may be sent in LIFO order (step 608). Sentdata may be removed from the airborne data logger 202 database. The useof a prioritized LIFO transmission system ensures that, in the event ofa flight incident, the most recently collected location information willhave been transmitted.

According to some embodiments, the emergency locator may serve tocompliment the two widely available locator systems, both designed tobroadcast a distress radio beacon after a flight incident on 121.5 MHzor 406 MHz, allowing search teams to detect the signal and locate anaircraft. One such system is Emergency Locator Transmitter (ELT), whichis automatically activated when an aircraft has a hard encounter withthe ground. Another such system is Personal Locator Beacon (PLB), whichmust be activated manually by the survivors of a flight incident, andcan optionally send GPS location information in addition to the radiobeacon. In contrast to ELT, airborne data logger 202 may broadcastlocation data while aircraft 201 is still in flight, and therefore doesnot need to survive the flight incident or continue broadcasting while asearch operation is ongoing. In contrast to PLB, airborne data logger202 does not need to survive the flight incident and does not need to beactivated by the survivors of the flight incident. Each of these systems(ELT, PLB, and the exemplary emergency locator embodiment of the presentdisclosure) may have distinct benefits, and using all three may increasethe odds of a quick rescue.

Flight Analysis and Grading

FIG. 7 illustrates an exemplary relationship between exemplarycomponents of an automatic flight analyzer 700 for providing analysis ofcollected flight data. Exemplary flight analyzer 700 may be implementedas a plurality of software modules running as part of ground-basedserver 203 or web client 206. Flight analyzer 700 may comprise threeparts: automatic flight segment recognizer 705, automatic grader 710,and remote graphics and text display unit 711. Data may be presented toa user operating web client 206, and such presentation may include, butis not limited to a 3D flight trajectory display on a 3D depiction ofterrain or of an aviation map; a 3D depiction of the analysis of theflight; and textual information to inform a user of potential problemsin the flight and to optionally provide suggestions for improving.Additionally, web client 206 may include administration software, suchas software for administering different user accounts within the system100.

According to some embodiments, automatic flight segment recognizer 705analyzes a flight's TSFD 506 and automatically recognizes specificsegments 706 of the flight. To perform this operation, automatic flightsegment recognizer 706 may use several sources of information. Forexample, recognizer 706 may use aeronautical data 701 (such as dataprovided by the National Flight Data Center in the U.S.), which mayinclude, but are not limited to, airport and runway parameters,navigation aids location and characteristics, flight routes, publishedflight procedures, and airspace boundaries. It may be used toautomatically understand the semantics the flight, including recognizingpatterns, such as landing on a specific runway of a specific airport.

Some embodiments of recognizer 706 may also use aircraft parameterinformation 702, which may include, but is not limited to, informationabout aircraft characteristics, such as stall airspeed in variousconfigurations, maximum airspeed, and recommended takeoff roll andlanding airspeeds. Data pertaining to a specific aircraft type may beselected based on the type of aircraft used in a specific flight. Thisdata may be used both by the recognizer 706 and by the automatic grader710 to analyze aircraft performance and detect potential problems anddeviation from standard operating procedures. When a pilot enters anaircraft serial number into airborne data logger 202, ground-basedserver 203 may look up that number automatically in an on-line registry(such as may be available in the U.S. from the FAA), or retrieve it froma local database. This lookup provides recognizer 706 with informationabout an aircraft's type. For example, an aircraft with a serial number“N54321” may be recognized by the system 100 as a Cessna 182T. Aircraftparameter information 702 specifically associated with a Cessna 182T maythen be provided to recognizer 706.

Recognizer 706 may also use TSFD 506, as described above. For example,recognizer 706 may also use weather data 703, which may include, but arenot limited to, timed wind speed and direction at various locations andaltitudes along the flight path, as well as other data, such asvisibility and cloud ceiling. This data may be used to supplement dataobtained by the airborne data logger 202.

Recognizer 706 may also use pilot flight intention data 708, which maycontain information about a pilot's “intentions.” Such intention datamay include, but are not limited to, the flight plan, the intention tofollow specific published flight procedures, and type of flight (e.g.,cross-country, practice, and using visual flight rules or instrumentflight rules). Recognizer 706 may correlate pilot flight intention data708 with actual flight data.

According to some embodiments, recognizer 706 may also use user-definedsegment data 709, which are a list of zero or more segments of theflight defined by the user. According to some embodiments, when the userdoes not provide such data, recognizer 706 may automatically break upthe flight data into flight segments, but the user may still add his ownsegments.

According to some embodiments, recognizer 706 may also use rules andtolerances data 704, which are a set of rules for determining thesemantics of a flight and their associated numerical tolerances. Rulesand tolerances data 704 may permit recognizer 706 to use a computerizedexpert system to group contiguous flight data points into a givensegment, and associate semantics (e.g., “takeoff”) to the segment. Adefault set of rules and tolerances data 704 is provided and may beenhanced or modified by a user, to enhance the capacity of recognizer706 capabilities to identify flight segments associated with a pilot'smission.

FIG. 8 is a flow chart illustrating an exemplary data processingstrategy of recognizer 706. For example, recognizer 706 may firstnormalize data and compute essential parameters. This task may require anumber of steps. For example, resampling raw data at 1 Hertz may beperformed at step 802 (raw data may typically be sampled at higherrates, such as from 1 to 3 points per second). Ground speed and verticalspeed may be computed at step 803 from GPS location and altitude data.If airspeed information is not provided by the flight data collectionunit 202, it may be estimated from the computed ground speed and thewind velocity information obtained from the weather data. Next, the datamay be digitally filtered (step 804) to smooth it out and to minimizethe effects of measurement errors.

A second task in the exemplary strategy of recognizer 706 may becorrecting errors in the GPS altitude information (step 805). Whencomparing errors of GPS altitude information to errors in the lateralGPS information, there are two error types in altitude measurement thatmay be addressed by recognizer 706. These two error types may vary insign and magnitude during the flight. One is a reading offset error(e.g., all reported altitudes may be 55 feet less than the actualaltitudes). These errors may be automatically corrected by recognizer706 because it may correlate the measured altitude when the aircraft ison the ground to the known runway elevation. The other type of error isa synchronization error with the lateral data. For example, altitudedata reported at time t may correspond to lateral data reported fiveseconds earlier. In this example, the altitude data lagging error mightindicate that the aircraft's altitude is equal to the runway's elevation4 seconds after the aircraft took off. Recognizer 706 may address thislagging error by correlating aircraft position with other parameters,such as airspeed, thereby estimating the rotation (takeoff) and landingpoints. Recognizer 706 may determine (step 806) to execute steps 801-805in a loop, so as to digitally enhance the data and remove variousmeasurement errors.

A third task in the exemplary strategy of recognizer 706 may be tosegment flight data into a set of basic segments (step 807). Forexample, recognizer 706 may use the aircraft parameter data 702 andaeronautical data 701 to detect transitions from ground-based operationssuch as a “taxi” section to airborne, and vice versa. This allows thelabeling of segments, such as “takeoff”, “landing”, and “touch-and-go”.Such transition and segment recognition may be done using a rule-basedexpert system and may take into effect factors such as aircraft type andweather. This activity may require backtracking as well. For example, a“climb” segment could be recognized by observing an ordered sequence ofpoints, all having a positive vertical speed. In this example, the“climb” segment could be terminated by another ordered sequence ofpoints all with an average vertical speed of 0, labeled “cruise.” Byrecognizing the average altitude of the “cruise” section, the previoussegment could be labeled for example “climb to 16,000 feet, heading270°,” and the cruise section labeled “cruise at 16,000 feet, heading270°.” By using strategies such as those above, recognizer 706 maycreate a set of basic segments at step 807. These basic segments may berecognized automatically by the system 100 without requiring additionaluser input.

Using information from the user, another task in the exemplary strategyof recognizer 706 may be to further refine the basic segments intointention segments (step 808). If the user specifies that he used aspecific instrument-based approach to landing, recognizer 706 is able tomark the beginning and end of each step in the approach, such as, forexample, flying from an initial approach fix to an intermediate fix,executing a procedure turn, intercepting a localizer, and following aglide path radio beacon. The segments created by recognizer 706 may forma hierarchy. For example, recognizer 706 may label all of the datapoints from the time that the aircraft is stationary on the ramp untilit takes off as “taxi”, and then further break this segment intosub-segments such as “pause” and “move”. Likewise, recognizer 706 maylabel all of the points from the end of the takeoff to the beginning ofthe landing as one segment “airborne”, then further subdivide thissegment into sub-segments corresponding to activities in the flight,such as “climb,” “cruise,” and “approach-to-landing,” optionally furthersubdividing each of these into subsections, such as “procedure turn,”“final,” and “missed-approach.”

Another task in the exemplary strategy of recognizer 706 may be thelabeling of segments, which may include assigning a color code to eachsegment (step 809), so as to make it easier for a user to view anddifferentiate between them. Recognizer 706 may also assign recommendedviewing angles for each segment, thus allowing a user to quickly set aviewpoint for a segment on a 3D display.

Recognizer 706 may use a knowledge-based expert system to detect thebeginning and end of each segment, and to sub-divide segments intofurther sub-parts. Recognizer 706 may support an open architecture, suchthat the knowledge-base may be modified by a user to recognize maneuversspecific to that user. As an example, when embodiments of the presentdisclosure are used in the military, the military may provide uniquerules so that recognizer 706 may detect certain military maneuversspecific to a given military training operation.

The exemplary strategy of recognizer 706 may run fully automatically, ormay be directed by a user. When directed by a user, a user may specifythe type of flight. For example, a cross-country flight typicallyconsists of straight segments with well-defined climb or descentsegments interleaved between level-flight segments. On the other hand, atraining flight might include various maneuvers that are not necessarilydone along straight lines. When a user specifies a training flight, thesegmentation process may not try to find the regularity of the segmentsof a cross-country flight. Furthermore, recognizer 706 may be providedwith a user's tolerances to override the default tolerances used byrecognizer 706 for various tasks such as recognizing a straight andlevel flight.

Referring again to FIG. 7, exemplary grader 710 may analyze flightsegments generated by recognizer 706. Additionally, grader 710 may usepilot flight intention data 708, such as the specific instrumentapproach used for landing or the missed approach maneuver used, to gradethe actual flight's operations as compared to the intended flight'soperations. Grading may be done both automatically and/or with regard tospecific pilot intentions.

According to some embodiments, automatic grader 710 may compute theparameters and consistency of certain flight operations, such asclimbing, descending, take-off, landing, and/or cruising. For each,grader 710 may verify parameters such as the consistency of theclimb/descent rate, the consistency of maintaining a heading, and/or theconsistency of turns. “Consistency,” in this context, means howaccurately a pilot maintains the parameters of a given operation. Forexample, if a pilot descended from 15,000 feet to 7,000 feet, grader 710may compute the average descent rate in feet/minute, how much the pilotdeviated from that rate, and whether or not the pilot overshot thetarget altitude (e.g., descended to 6940 feet before leveling off at7000 feet).

Given the pilot's intentions, grader 710 may check how accurately thoseintentions were flown. For example, a pilot on an Instrument FlightRules (IFR) flight plan could be instructed to depart from an airportusing a specific published departure procedure. Flying the procedure mayrequire precise tracking of a given ground course as specified by theprocedure, climbing at climb rates as specified in the procedure,maintaining certain minimum altitudes at certain points, and levelingoff at specific points as instructed by an air traffic controller (ATC).After a user provides grader 710 with intention data 708 indicating thatthe intent was to use the specific published departure procedure, grader710 may compute how well the procedure was flown and the piloting errorsand procedure violations that were made, if any.

As another example, if grader 710 is provided the information that aflight was conducted under visual flight rules (VFR), grader 710 mayanalyze the landing maneuver and provide information about flying thetraffic pattern, such as how consistent the altitude was on the downwindleg, how close it was to the airport's pattern altitude, and how closethe airspeed was to the recommended airspeed for the aircraft type.

For each stage of a flight, grader 710 may compute a numeric grade,reflecting the consistency of the pilot's performance on that stage. Forexample, it may compute how consistently maintained were flightparameters, such as altitude, airspeed, and climb rate, and how closethey were to the desired or required parameters. In addition, it maygenerate a textual description with more information. Collectively, suchgrades may help a user measure his progress as he applies feedback fromthe system 100 to improve his piloting skills.

For aircraft equipped with an automatic pilot, some of the gradingdescribed above may grade the performance of the automatic pilot ratherthan that of the human pilot. Such information may be less relevant forthe self-improvement of the pilot, but nevertheless may be desirable forat least three reasons. First, it may provide information about whetherthe pilot programmed the automatic pilot correctly; second, it mayprovide the pilot and other users with feedback about the performanceand reliability of the automatic pilot; and third, it also may providean evaluation of the pilot's actions controlling certain aspects of theflight, which are not directly controlled by the automatic pilot. Forexample, most automatic pilots of small to medium-size aircraft do notcontrol the throttle and the propellers' RPM, and thus, the pilot isresponsible for maintaining safe power settings consistent with thedesired airspeed. Grader 710 may check and grade the pilot's performancein maintaining correct airspeed. Many accidents have occurred insituations where the aircraft was Controlled by an automatic pilot, butthe human pilot failed to maintain adequate power, resulting, forexample, in a stall during landing. If such a stall leads to anaccident, the information about the error would likely be known. Withoutusing automatic flight analyzer 700, however, stalls or “near stalls”resulting from a pilot's error from which the pilot managed to recovermight not be known or reported, even if the aircraft was on a commercialflight and the error endangered the lives of many passengers.

Grader 710 may use various strategies for computing how well the pilotperformed. It may also be opened for third-party implementers, who maywish to plug in their own strategies for addressing situations that arenot addressed by system 100.

Aircraft Flight Display

Referring again to FIG. 2, ground-based server 203 may communicatecollected flight data and flight data analysis to web client 206 for auser. Web client 206 may be implemented as a software program running ina web browser, such as Microsoft Internet Explorer, Mozilla Firefox, orApple Safari, running under operating systems such as Microsoft Windowsand Macintosh OS. Web client 206 may be implemented in JavaScript orother programming language, and may permit users to perform varioustasks, such as remotely logging into ground-based server 203, selectingand editing flight data, and displaying collected flight data in variousformats, including, but not limited to, overlaying it on satelliteimagery or aviation maps, using such tools as Google Earth, in 3D. Webclient 206 may also permit flight schools to support a learning style inwhich student pilots may share their flight information with theirCertified Flight Instructor (CFI). Web client 206 may provide automatedand manual tools needed for post-flight analysis. Such tools may be usedby the pilot, by a flight instructor, by peers, the pilot's employer,insurance companies, air traffic controllers, planners of instrumentapproach procedures, and others. Web client 206 may be used by pilots atall levels, from student pilots to GA pilots, to seasoned commercialpilots.

According to some embodiments, web client 206 may include softwarerunning on a workstation, such as PC or Macintosh computers,communicating with at least one ground-based server, and providing auser with capabilities for viewing the flight data in text or graphicsmode and analyzing various aspects of it. Web client 206 may process auser's request, pass it to ground-based server 203, and then display forthe user the results of the processing performed by ground-based server203.

Web client 206 may provide users with secure access to flight data andanalysis on ground-based server 203, presenting the data in variousformats, letting the user interact with ground-based server 203, affectits operation, and modify its data. Web client 206 may use HTTP or HTTPSprotocols to log-in and interact with ground-based server 203. Thelog-in may allow the user to access information based on the user'scredentials, as determined by the web client 206 software running on theworkstation.

In some embodiments consistent with the present disclosure, web client206 may initially allow access to flight data only to the pilots of theflight and permit these pilots to share any of the data of their flightswith others, either manually (per-flight) or automatically (e.g., astudent pilot may setup an automatic share of all his flights with hisinstructor). Such sharing may be done with other system users and maypermit a user to see a list of flights shared with him by other pilots.

Another type of sharing may be with people who do not have an account.Such sharing may be done, for example, by a pilot of a flight by using aspecial URL generated by web client 206 or ground-based server 203, andmay allow a person using this URL to have access (read/only orread-write) to a specific shared flight. An additional embodimentconsistent with the present disclosure may allow the pilot to share aflight using a social network, such as Facebook, by presenting to thepilot icons that automatically share the flight using the social networktools. Still another embodiment may permit a pilot who shared his flightthis way to “unshare” a flight (i.e., disallow further access to thedata). This may be done by an interface in the web client thatinvalidates the URL or the social network sharing mechanism, such thatusing the URL after the data is unshared results in an error messagerather than access to the flight data.

FIGS. 9 a and 9 b illustrate an example of a display of automaticallyrecognized flight segments by web client 206. In the illustratedexample, a potentially dangerous situation that may result in loss ofcontrol of the aircraft soon after takeoff is highlighted. Web client206 may provide a graphical display of the 3D flight track, includingthe ground track and the altitude, using color-coding for the variousflight segments. The display may be overlaid on a graphical 3Ddisplaying system such as Google Earth. Backgrounds may be selected bythe user and may include terrain photos, obtained from satellites, ormaps such as aviation maps including, for example, sectional charts,low-altitude charts, and high-altitude charts. Specific flight segmentsmay also be color-coded. An implementation of this segmentation may useidentical color-coding in the text and in the graphics.

FIG. 9 a shows a taxi segment 901, which may be depicted, for example,in green, followed by a takeoff segment 902, which may be depicted, forexample, in gold, followed by an initial climb segment 903, which may bedepicted, for example, in blue, followed by a “near stall” segment 904,which may be depicted, for example, in red. Such segmentation may alertthe pilot to a potentially dangerous situation that occurred immediatelyfollowing takeoff, when the aircraft's speed was too low, which couldhave resulted in loss of control at a low altitude above the ground.FIG. 9 b shows the same segments in an exemplary alphanumeric display,where each line corresponds to one segment in the graphical display andmay have a color identical to that of the graphical segment. Segmentsmay be hierarchical, i.e., contain sub-segments. In FIG. 9 b, the entireflight is described in one segment, as exemplified in the first line,which is further refined into sub-segments exemplified in subsequentlines. Each sub-segment may be hierarchical as well, containingsub-sub-segments, etc. Hierarchical segments may be displayed with ahierarchy indicator such as exemplified by 950, and a user may open andclose hierarchy level displays in order to expose or hide differentlevels of details. In FIG. 9 b, the top-level hierarchy is opened, asindicated by the down arrow 950, but other hierarchical segments underit are closed as indicated by right arrows 951, 952, 953 and 954. Inthis example, a user may click the airborne hierarchy symbol 952 andobtain a display of sub-segments detailing cross-country flightoperations such as climbs, cruise at different altitudes and headings,and descents. Likewise, clicking the right arrow 953 may provide detailsof the visual approach, for example flying the various legs of theflight traffic pattern, and landing.

According to some embodiments, web client 206 may provide a graphicaldisplay of the actual flight vs. the intended route. In FIGS. 10 a and10 b an Instrument Landing System (ILS) procedure is visualized togetherwith an actual flight path computed from collected flight data. Forexample, when analyzing an approach for landing using an instrumentlanding system navigation aid, the actual 3D flight track may bedisplayed together with a 3D display of localizer and glide-slope radiobeams, so that deviations from an ideal approach are easy to visualize.FIG. 10 a illustrates an example of an overlay of a published instrumentapproach 1051 to landing on a 3D satellite image. The instrumentapproach 1051 depicted is an ILS approach.

Although FIGS. 10 a and 10 b are black and white drawings, the variouscomponents of the display may be color-coded, with text showing thenames of fixes 1002, 1003, 1004, and corresponding minimum altitudes.For example, the flight from the FAF (Final Approach Fix) 1002 to thetouchdown point on the runway may be depicted in magenta, while themissed-approach segment 1003 (taken when landing must be aborted andstarting at fix 1003 “(S-ILS 5) 344′”) may be depicted in green. FIG. 10b shows the simultaneous overlaying of an actual flight track 1050 withpublished approach 1051, and demonstrates the deviation of the actualflight from an ideal approach. By changing the view point, a user maymeasure lateral deviations from the final course defined by thelocalizer beams 1060, and altitude deviations from the glide slope (notshown).

According to some embodiments, web client 206 may provide modes, asillustrated in FIGS. 11 a and 11 b, for displaying flight parameters ata given point in time, which might include, but are not limited to,aircraft airspeed, heading, rate of turn, vertical speed, and windvelocity. To see the flight parameters at a given point, a user may draga slider 1101 on the timeline and see the parameters of the flight atthat point. FIGS. 11 a and 11 b show that at time 20:57:49 the aircraftwas cruising in a straight line at 7,503 feet with a heading' of 35°,and a course of 33°, with no vertical speed, with true airspeed of 136knots, while the wind was coming from 50° at 11 knots. FIG. 11 a shows atextual display of these parameters together with a slider, and FIG. 11b shows a display of some of the parameters in a call-out 1120 on the 3Ddisplay of the flight.

According to some embodiments, web client 206 may provide an animationmode in which a symbol representing the aircraft is moved along thedisplayed flight path while the numerical parameters of the flight atthat location are also displayed. The displayed time may be advanced byweb client 206 automatically at various speeds selected by the userincluding real-time (1×), and thus a user may verify the adequacy of theflight parameters for the intended flight by watching a dynamicdepiction of the flight. When in an exemplary animation mode, web client206 may support a mode in which the viewpoint is automatically changedas the animation progresses. Such a changing viewpoint may show the 3Dterrain from the point of view of the pilot, or from a fictitiousaircraft following the actual aircraft. FIG. 11 a shows an animationcontrol 1100, which could be set in “Play” mode and automatically changethe displayed time-line in various speeds, including real-time (1×),thus showing the evolution of the flight.

According to some embodiments, web client 206 may provide a mode ofdisplaying graphs of selected flight parameters, such as altitude,against time, as illustrated in FIG. 12. Such a display may encompass anentire flight, or only selected segments of it. FIG. 12 shows exemplarygraphs of aircraft altitude 1201 and vertical speed 1202, drawn with asimilar time axis. The graphs show the aircraft taxing at the departureairport's altitude, then climbing to its cruising altitude of 6,000 feetat approximately 800 feet/minute, then descending to land in two steps,both at around 1,000 feet/minute. Such graphs may be drawn in differentcolors, corresponding to the color coding of the corresponding segmentdisplay, and may contain a vertical line indicating the position of theslider 1101.

According to some embodiments, web client 206 may provide a mode thatdisplays wind vectors along the path of the flight, as illustrated inFIG. 13. Such a depiction helps visualize the affect of the wind on theflight. FIG. 13 shows an exemplary display of wind vectors along aflight path. A wind vector is a common way of depicting the directionand the speed of wind. The aircraft from which the flight path in FIG.13 was created moved from right to left, was climbing, and encounteringa head-wind whose speed increased from 15 knots, as indicated by windvector 1301, to 25 knots, as indicated by wind vector 1302, representinga moderate wind shear.

According to some embodiments, web client 206 may provide a mode thatdisplays textual reports of flight issues and suggestions, computed byanalyzer 700, which may be annotated on the 3D graphical display or inother ways. For example, analyzer 700 may provide web client 206 withdata causing it to display a text note at the point on the 3D flightpath display where a pilot overshot the final landing decision point, oran alert box where a pilot descended below the allowed minimum altitudefor that section. Web client 206 may provide a display of mean andmaximum deviations from a given flight path, which may include but arenot limited to: maintaining a given heading, following a given groundpath such as a localizer beam, maintaining a fixed altitude, correctlyexecuting a holding pattern, and maintaining a given rate of descentthat keeps the aircraft on an instrument glide path.

According to some embodiments, web client 206 may provide a mode inwhich pilots and other designated users may add and edit commentary tothe flight page. Such functionality may, for example, help a flightinstructor add comments to his student's flight, so that such commentswill not be forgotten. Such comments may be attached to a specific pointon the flight path, or may refer to the flight as a whole.

According to some embodiments, web client 206 may provide a mode todisplay a textual “report card” including grades of various aspects ofthe flight, as well as an overall grade, as computed by exemplary grader710. Such grades may be computed automatically using default rules andtolerances data 704, or may be graded using user-supplied rules andtolerances data 704. For example, a certain CFI may require his studentpilot to maintain level flight at a certain altitude, with altitudechanges not to exceed ±50 feet. That particular CFI may provide customrules and tolerances data so that grader 710 may alert the student pilotof such deviations.

According to some embodiments, web client 206 may provide a mode inwhich annotations regarding the availability of audio on the 3D flightpath are displayed. This may include annotations for the availability ofaudio recordings such as cockpit conversation or conversations between apilot and an air traffic controller. Web client 206 may play suchrecordings when the annotations are selected. Such annotations may bemarked on the 3D flight path or in other places on the user interface.

According to some embodiments, web client 206 may support attaching userphotos and videos taken along the flight to the flight information. Sucha capability may, for example, allow a user to upload into the system100 multimedia files from devices such as cameras, and have thesemultimedia files be attached to the flight, for example, as annotationson the 3D flight path. The placement of these annotations may be mademanually by the user, and may also be made automatically by the system100 using a date and time information embedded in the multimedia files.Because devices such as cameras may have a clock that is notsynchronized with the flight's time as recorded by the airborne datalogger 202, a user may manually locate one such multimedia file on theflight path, and the system 100 would then automatically locate all theother multimedia files using the time difference computed between themultimedia timestamp and the flight time to which the user attached thefirst multimedia file.

According to some embodiments, web client 206 may provide an automaticpilot logbook display. For example, it may display a list of flightsflown by a given pilot in table format, with rows representing flights,and columns representing data per flight, as is common in pilotlogbooks. Similar to pilot logbooks, information per flight may includedate, aircraft tail number and type, number of takeoffs and landings,origin and destination airports, and total time in the air and in taxi,and such information may be automatically computed and displayed by thesystem. Full logbook data may include supplemental user-suppliedinformation, such as Hobbs meter, time in Instrument MeteorologicalConditions (IMC), Pilot in Command (PIC) information, and othercomments.

According to some embodiments, web client 206 may include provisions forsharing data from selected flights with other people. For example, apilot may want to share his flight data with another user of the system100, for example, his flight instructor. The system 100 may supportsharing of data from flights also with people who are not users of thesystem 100, by generating a URL allowing the viewing of the flight data,and sending a generated URL using tools, such as an e-mail program orsocial network programs such as Facebook. The system 100 may allow theperson who shared flight data to “unshare” it, for example, byinvalidating the URL sent. After “unsharing,” using the old URL willresult in an error and will not provide information about the flight.

According to some embodiments, web client 206 may include tools forediting published approach procedures. Such editing may modify thedatabase of published flight procedures stored on ground-based server203, so that flight analyzer 700 is able to use the information forgrading the flight, and web client 206 is able to display it togetherwith the actual flight path. Typically, flight procedures, such asInstrument Approach Procedures, are created by government bodies, andare distributed to pilots as “approach plates” or other printed data,containing a graphical and textual description of the procedures. Inorder for exemplary flight analyzer 700 to be able to use such aprocedure, for example, in comparing it to the actual flight flown, theprocedure may be converted to a format conducive for a computerizedprocessing of the procedure. Furthermore, the user may use web client206 to overlay such procedures graphically on the 3D display, forvisualizing the deviation of the actual flight from these procedures.For this, web client 206 may provide a tool for creating and editing atextual description of the procedure in a computer language providedspecifically for web client 206.

According to some embodiments, web client 206 may provide a mode ofediting such procedures and may support a display of such proceduresgraphically as well as highlighting errors in the textual computerlanguage describing the procedure, should such errors exist. FIG. 14illustrates an example of such an editor, having a window 1400 forviewing and editing the textual description of a procedure 1401 forlanding on a runway 5 of airport KLWM using ILS, and buttons 1402 forvisualizing and saving a new version of a procedure. FIG. 10 a displaysan exemplary result of pressing the editor's “TRY” button, visualizingthe procedure 1401 whose textual description is shown in window 1400.The visualization features a 3D depiction of the procedure, with a finalapproach fix 1002, decision altitude 1003, and missed approach holdingfix 1004. The system may compile such textual computer languagedescriptions of flight procedures into internal data representations,which may be part of the aeronautical data 701. Such information may beused both for analyzing and for grading the flight per the given userintentions 708. It may also be used for displaying the proceduresgraphically as exemplified in FIG. 10.

To illustrate the use of multiple interoperable exemplary embodimentsdisclosed herein for a pilot's self improvement, consider the followingoperations and the pilot's use of the exemplary system 100 during theseoperations. During pre-flight, the pilot carries an airborne data logger202 implemented as an application on a smartphone, such as an iPhone, tothe aircraft, activates the airborne data logger 202 application,optionally connects the airborne data logger 202 to additional inputs(such as the pilot's audio system), and if needed, types in or selectshis name, the name of the co-pilot if any, and the aircraft's serialnumber. Before starting any communication with ground control, the pilotclicks a “start” button on the airborne data logger 202 application andsecures the smartphone on the aircraft's dashboard.

During flight the pilot carries out the normal piloting operations, suchas taxiing, takeoff, cruising, and landing. During that time, airbornedata logger 202 stores flight data and optionally transmits itcontinually to ground-based server 203. No interaction between the pilotand the airborne data logger 202 during the flight is required.

While the aircraft is airborne, ground-based server 203 may receive datafrom the airborne data logger 202. Ground-based server 203 may storedata obtained from airborne data logger 202 in a database and analyzeit. Using additional auxiliary data, such as a database of the locationof airports and runways and weather information, ground-based server 203may automatically recognize various aspects of the flight, which mayinclude the specific runways used for takeoff, training maneuvers suchas “touch and go,” or stall practice, adherence to published proceduressuch as instrument-based approaches, and taxiing operations.

After the end of the flight, the pilot may manually turn off theairborne data logger 202, or he can operate the airborne data logger 202in auto stop mode, which stops the logging automatically after landingwhen the aircraft comes to rest. At a later time on the ground, thepilot can use web client 206 and log into ground-based server 203. Webclient 206 may run on a web browser, and therefore, there may be no needto download or install any special software in order to access and viewthe flight information and its analysis.

Using web client 206, the pilot may select any of his flights foranalysis. He may view the'flight stages in 3D graphics on a satelliteimagery, such as that obtained from Google Earth, or have them displayedin 2D or 3D on an aviation map, view them from different viewpoints, andexamine special annotations on the satellite or terrain map displaycreated by exemplary embodiments of the system 100, such as availabilityof audio recordings at certain points along the path.

Using exemplary web client 206, the pilot may input information abouthis intentions in the flight. For example, the pilot may have flown anInstrument Flight Rules (IFR) flight in a given route and may have useda specific landing procedure approved by the FAA for landing on a givenrunway using instruments. Once the system 100 receives informationregarding the intentions of the pilot, it may provide the pilot withadditional automatic annotations related to the actual execution of theintentions, which may include the deviation of the actual flight fromthe plan, if any, and can provide grades for the quality of executingthe various flight stages.

The pilot and other designated people, such as his flight instructor,may add annotations and commentary to each flight. In that way, thepilot may build a history of flights' documentations and review hisprogress. The access to such reviews can be enabled to other people,such as people responsible for improving flight safety.

The software running in exemplary airborne data logger 202 may also beadopted for use in simulated flights (flight “flown” on a simulator).This allows pilots to practice flights in a simulator environment andthen use the system 100 to analyze their performance. Such use allowsseasoned airline pilots who use a simulator to obtain a detailedanalysis of their simulated flight. Such a simulated flight may includesimulated failures of the aircraft's subsystems, including navigationsystems and automatic pilot functions, and the use of some exemplaryembodiments of the system 100 will highlight to the pilot how he copedwith the emergencies. Similar benefits from post-flight analysis wouldbe available to student pilots using a flight simulator 205 and forlicensed IFR pilots who want to improve their skills or maintain theirIFR currency by using a flight simulator 205.

To illustrate the flow of information between the various parts of thesystem 100, consider an example of one possible scenario. A pilotoperates airborne data logger 202 and flies a specific flight, duringwhich data is transmitted to ground-based server 203. At the end of theflight, flight analyzer 700 automatically segments the flight stages andgrades them. The pilot goes to an office equipped with a workstation,such as a PC running Windows, and connects to the web. He logs intoground-based server 203 using web client 206. This may involveestablishing a bi-directional HTTP or HTTPS connection between theworkstation and ground-based server 203. Server 203 authenticates theaccess and provides the pilot with various options. The pilot selectshis last flight and a 3D viewing mode. The selection is sent toground-based server 203, and server 203 sends back to the PC graphicalflight data. Web client 206 running on the PC displays the flight in 3Dusing Google Earth software, which may allow the pilot to zoom, pan,change the angle of viewing, and listen to his conversations with ATC onselected points along the flight path. The pilot may display text boxeson the 3D graphics with information, such as ground and air speed,vertical speed, altitude, and others. The pilot can play back the flightat various speeds and see a simulated flight on the 3D display,including viewing the flight as if it were videotaped from the cockpit.The pilot may enter information into the web client to indicate hisintentions (e.g., the procedure selected for landing). This informationis relayed to ground-based server 203; ground-based server 203re-analyzes the data and sends data back to the PC, including graphicaldata and textual data including grades. At a later time, perhaps weeksor months later, the pilot may compare his performance on that specificflight with his performance on similar flights flown more recently, thustracking his improvement.

According to some embodiments, pilots may analyze their flightsoff-line, for example, while sitting in front of a computer screen onthe ground, not burdened by the need to fly an airplane. Pilots usingsome embodiments of the system and method may obtain feedback andguidance from the system, learn from their mistakes and improve theirskills. According to some embodiments, the system can be used as apersonal coach with nearly unlimited availability, high levels ofexpertise and patience, and the ability to point out opportunities forself-improvement for commercial pilots, air-traffic controllers, andstudent pilots.

According to some embodiments, people in charge of flight safety may usethe system for analyzing the adherence of pilots to existing flyingpractices and to regulations, for aiding in developing safety programs,and for monitoring the adherence of pilots to such programs. Pilots andsafety personnel can use the system to analyze violations ofregulations, including but not limited to: runway incursions, airspaceincursions, and deviations from designated flight corridors and assignedaltitudes. According to some embodiments, he system may be used bygovernmental and other bodies for developing new flight procedures, suchas instrument-based airport departing and landing procedures.

According to some embodiments, the systems and methods may be used byCertified Flight Instructors (CFIs) in flight schools, on the ground,for visualizing flights flown by their students, and for demonstratingto their students the proper way to fly, navigate, and converse on theradio. According to some embodiments, student pilots may use the systemfor obtaining feedback after the flight, in an environment moreconducive to learning than in a noisy and busy cockpit. Student pilotsmay track their progress by viewing their execution of certain flightmanuevers in different past flights. According to some embodiments,pilots may use the system recreationally for sharing their cockpitexperience with friends and colleagues.

According to some embodiments, the system includes logging of flightinformation, which may be relayed to a ground-based server in real-time.In such embodiments, the system may also aid in locating aircraft thatmay have undergone a flight incident, for example, by making theaircraft's incident location known to search and rescue teams, and byproviding a description of the events leading to the incident, thusaiding in the incident investigations.

One of the advantages of the disclosed comprehensive flight datacollection and analysis system according to some embodiments may be thatit may be implemented using low cost components, for example, by usinglow cost consumer hardware components, as well as re-using hardware thatmany users may already own, such as smartphones. This may be especiallyimportant for GA, where most aircraft owners cannot afford expensivehardware, but may be also an advantage for commercial use.

The foregoing descriptions of the embodiments of the present applicationhave been presented for purposes of illustration and description. Theyare not exhaustive and do not limit the application to the precise formdisclosed. Modifications and variations are possible in light of theabove teachings or may be acquired from practicing the invention. Forexample, as noted above, the described exemplary embodiments includesoftware, but the present application may be implemented as acombination of hardware and software or in hardware alone. Additionally,although exemplary embodiments of the present application are describedas being stored in memory, one skilled in the art will appreciate thatembodiments can also be stored on other types of computer-readablemedia, such as, for example, secondary storage devices, like hard disks,floppy disks, or CD-ROM; a carrier wave from the Internet or otherpropagation medium; or other forms of RAM or ROM.

Other embodiments of the present application will be apparent to thoseskilled in the art from consideration of the specification and practiceof the invention disclosed herein. It is intended that the specificationand examples be considered as exemplary only, with a true scope andspirit of the invention being indicated by the following claims.

1. A system for collecting flight data associated with an aircraft, thesystem comprising: a data logger comprising: a memory unit for storingflight data; a processing unit coupled to the memory unit and configuredto supply the memory unit with flight data, wherein the processing unitis further configured to reorder and prioritize stored flight data priorto transmission; and a transmitting and receiving unit coupled to theprocessing unit and adapted to transmit stored flight data to a remotesystem and receive data from a remote system; and a global positioningsystem receiver having an output coupled to provide global positioningdata to the processing unit.
 2. The system of claim 1, wherein theprocessing unit is further configured to compress stored flight data fortransmission and decompress received data.
 3. The system of claim 1,wherein the processing unit is configured to prioritize stored flightdata in order to transmit the most recently acquired global positioningdata before other data.
 4. The system of claim 1, wherein the processingunit is further configured to automatically start and stop datatransmission based on an aircraft speed.
 5. The system of claim 1,wherein the processing unit is further configured to encrypt storedflight data for transmission and decrypt received data.
 6. The system ofclaim 1, wherein the global positioning system receiver comprises a widearea augmentations system enabled global positioning system receiver. 7.The system of claim 1, wherein the transmitting and receiving unitcomprises a cellular telephony transmitter and receiver.
 8. The systemof claim 1, wherein the processor is further configured to automaticallystop data logging when the aircraft has come to a complete stop.
 9. Thesystem of claim 1, wherein the processor is further configured toautomatically stop data transmission when speed of the aircraft exceedsa minimum value.
 10. The system of claim 1, wherein the data receivedfrom the remote system comprises account information, comprising atleast one of the following: an account name; a list of selectableaircraft serial numbers; a list of selectable pilot names; an accountlogo; and an account status.
 11. The system of claim 1, wherein theflight data comprises digitized cockpit audio data, comprising at leastone of the following: intercom audio data; audio data of cockpit ambientsounds; audio data from an aircraft communication radio.
 12. The systemof claim 11, wherein the processing unit is further configured todetermine engine RPM based on samples of the audio data of cockpitambient sounds.
 13. The system of claim 1, wherein the flight datacomprises aircraft avionics data, including at least one of thefollowing: airspeed; heading; rate of turn; bank and pitch angles;engine status; radio and navigation aid status; fuel quantity; landinggear status; flight surface status; and propeller status.
 14. The systemof claim 1, wherein the data logger comprises a smartphone.
 15. Thesystem of claim 1, wherein the remote system comprises: a server havinga server memory unit; a server processing unit coupled to the memoryunit; and a server transmitting and receiving unit coupled to theprocessing unit, wherein the server transmitting and receiving unit isconfigured to receive flight data transmitted from the data logger, andwherein the server processing unit is configured to store the receivedflight data in a database in the server memory unit.
 16. The system ofclaim 15, wherein the database comprises a structured query languagedatabase.
 17. The system of claim 15, wherein the server processing unitis further configured to: provide access to flight data stored on thedatabase via a remote access web-browser; and display flight data storedon the database in a remote access web-browser.
 18. A method ofcollecting flight data, the method comprising: collecting aircraftflight data via a data logger; collecting global positioning system datavia a global positioning receiver; prioritizing the flight data fortransmission; and transmitting the flight data to a remote systemcomprising a remote system memory, a remote system processor, and aremote system transmitter and receiver.
 19. The method of claim 18,further comprising compressing the flight data prior to transmitting theflight data.
 20. The method of claim 18, further comprising prioritizingflight data stored by the data logger in order to transmit the mostrecently acquired global positioning data before other data.
 21. Themethod of claim 18, further comprising starting and stopping datatransmission according to an aircraft speed.
 22. The method of claim 18,further comprising: encrypting flight data stored by the data logger fortransmission; and decrypting received data.
 23. The method of claim 18,wherein the global positioning system receiver comprises a wide areaaugmentations system enabled global positioning system receiver.
 24. Themethod of claim 18, wherein the data logger comprises a transmitting andreceiving unit comprising a cellular telephony transmitter and receiver.25. The method of claim 18, further comprising stopping collecting ofaircraft flight data when the aircraft has come to a complete stop. 26.The method of claim 18, further comprising stopping transmitting of theflight data when a speed of the aircraft exceeds a minimum value. 27.The method of claim 18, further comprising receiving data from theremote system, wherein the data received from the remote systemcomprises account information, comprising at least one of the following:an account name; a list of selectable aircraft serial numbers; a list ofselectable pilot names; an account logo; and an account status.
 28. Themethod of claim 18, wherein the flight data comprises digitized cockpitaudio data, comprising at least one of the following: intercom audiodata; audio data of cockpit ambient sounds; audio data from an aircraftcommunication radio.
 29. The method of claim 28, wherein furthercomprising determining engine RPM based on samples of the audio data ofcockpit ambient sounds.
 30. The method of claim 18, wherein the flightdata comprises aircraft avionics system data, including at least one ofthe following: airspeed; heading; rate of turn; bank and pitch angles;engine status; radio and navigation aid status; fuel quantity; landinggear status; flight surface status; and propeller status.
 31. The methodof claim 18, wherein the data logger comprises a smartphone.
 32. Themethod of claim 18, further comprising: providing access to flight datastored on a database via a remote access web-browser; and displayingflight data stored on the database.
 33. A non-transitory computerreadable medium encoded with a computer program for collecting flightdata associated with an aircraft, the computer program comprisinginstructions for: collecting flight data during an aircraft flight;storing the flight data in a computer readable memory; collecting globalpositioning data from a global positioning receiver; prioritizing theflight data for transmission; transmitting the flight data to a remotesystem; and receiving stored data from the remote system.
 34. Thenon-transitory computer readable medium of claim 33, wherein thecomputer program further comprises instructions for compressing theflight data.
 35. The non-transitory computer readable medium of claim33, wherein the computer program further comprises instructions forprioritizing the stored flight data in order to transmit most recentlyacquired global positioning data before other data.
 36. Thenon-transitory computer readable medium of claim 33, wherein thecomputer program further comprises instructions for starting andstopping data transmission according to aircraft speed.
 37. Thenon-transitory computer readable medium claim 33, wherein the computerprogram further comprises instructions for encrypting the stored flightdata for transmission; and decrypting received data.
 38. Thenon-transitory computer readable medium of claim 33, wherein thecomputer program further comprises instructions for stopping collectingof data when the aircraft has stopped.
 39. The non-transitory computerreadable medium of claim 33, wherein the computer program furthercomprises instructions for stopping data transmission when a speed ofthe aircraft exceeds a minimum value.
 40. The non-transitory computerreadable medium of claim 33, wherein the stored data received from theremote system is account information, comprising at least one of thefollowing: an account name; a list of selectable aircraft serialnumbers; a list of selectable pilot names; an account logo; and anaccount status.
 41. The non-transitory computer readable medium of claim33, wherein the flight data comprises digitized cockpit audio data,comprising at least one of the following: intercom audio data; audiodata of cockpit ambient sounds; audio data from an aircraftcommunication radio.
 42. The non-transitory computer readable medium ofclaim 41, wherein the computer program further comprises instructionsdetermining engine RPM based on samples of the audio data of cockpitambient sounds.
 43. The non-transitory computer readable medium of claim33, wherein the flight data comprises aircraft avionics system data,including at least one of the following: airspeed; heading; rate ofturn; bank and pitch angles; engine status; radio and navigation aidstatus; fuel quantity; landing gear status; flight surface status; andpropeller status.
 44. A system for collecting aircraft flight data,comprising: means for collecting flight data comprising: means forstoring flight data; means for transmitting stored flight data to remotemeans for storing and processing flight data and receiving data from theremote means; and means for processing stored flight data, wherein thestored flight data is reordered and prioritized by the processing meansprior to transmission; and means for receiving global positioning systemdata.